[XEN] physdev: Check for negative irqs in alloc_irq_vector.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 30 Aug 2006 17:02:32 +0000 (18:02 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 30 Aug 2006 17:02:32 +0000 (18:02 +0100)
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
xen/arch/x86/physdev.c

index caf6f393e473652e4f9329ecfe628a263ce5fd04..2d4841a039446a44d43b05680ecb207779ccec97 100644 (file)
@@ -96,10 +96,11 @@ long do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
         if ( !IS_PRIV(current->domain) )
             break;
 
+        irq = irq_op.irq;
         ret = -EINVAL;
-        if ( (irq = irq_op.irq) >= NR_IRQS )
+        if ( (irq < 0) || (irq >= NR_IRQS) )
             break;
-        
+
         irq_op.vector = assign_irq_vector(irq);
         ret = copy_to_guest(arg, &irq_op, 1) ? -EFAULT : 0;
         break;